import {  reqspecscount,reqgoodslist,reqgoodscount } from "../../http/api"

// 状态
let state = {
    // 1.初始化数据
    arr: [],
    total: 0,//总条目数
    size: 2,//一页的条目数
    page: 1,//当前页码
}

// 导出数据
let getters = {
    // 2.导出
    arr(state) {
        return state.arr
    },
    total(state) {
        return state.total
    },
    size(state) {
        return state.size
    }
}

// 修改状态
let mutations = {
    // 3.修改arr
    changeArr(state, arr) {
        state.arr = arr;
    },
    // 修改总数
    changeTotal(state, total) {
        state.total = total;
    },
    // 修改页码
    changePage(state, page) {
        state.page = page;
    }
}

// 做异步 做逻辑
let actions = {
    // 请求列表
    reqList({ state: { page, size }, commit, dispatch } ) {

        let params =  { page, size }
        reqgoodslist(params).then(res => {
            if (res.data.code == 200) {
                //   修改arr
                let arr = res.data.list ? res.data.list : []

                // 获取到arr的长度是0，如果arr的长度不是第一页，需要请求上一页
                if (arr.length == 0 && page != 1) {
                    // 修该page
                    commit("changePage", page - 1)
                    // 请求列表
                    dispatch("reqList")
                    return
                }

                commit("changeArr", arr)
            }
        })
    },
    // 4.请求arr
    reqArr({ commit, dispatch }) {
        // 发起请求列表
        dispatch("reqList");
        // 请求总页数
        reqgoodscount().then(res => {
            if (res.data.code == 200) {
                //    修改每总页数
                commit("changeTotal", res.data.list[0].total);
            }
        })
    },
    // 修改页码
    changePage({ commit, dispatch }, e) {
        //  修改page
        commit("changePage", e)
        // 发起请求列表
        dispatch("reqList");
    }
}

// 导出
export default {
    state,
    getters,
    mutations,
    actions,
    namespaced: true//命名控件
}